type go/types.Chan
45 uses
go/types (current package)
builtins.go#L187: case *Slice, *Chan:
builtins.go#L205: case *Array, *Slice, *Chan:
builtins.go#L239: uch, _ := u.(*Chan)
builtins.go#L501: case *Map, *Chan:
chan.go#L8: type Chan struct {
chan.go#L24: func NewChan(dir ChanDir, elem Type) *Chan {
chan.go#L25: return &Chan{dir: dir, elem: elem}
chan.go#L29: func (c *Chan) Dir() ChanDir { return c.dir }
chan.go#L32: func (c *Chan) Elem() Type { return c.elem }
chan.go#L34: func (t *Chan) Underlying() Type { return t }
chan.go#L35: func (t *Chan) String() string { return TypeString(t, nil) }
expr.go#L182: ch, _ := u.(*Chan)
expr.go#L719: case *Pointer, *Signature, *Slice, *Map, *Chan:
expr.go#L888: case *Chan:
infer.go#L433: case *Chan:
infer.go#L765: case *Chan:
mono.go#L230: case *Chan:
operand.go#L306: if Vc, ok := Vu.(*Chan); ok && Vc.dir == SendRecv {
operand.go#L307: if Tc, ok := Tu.(*Chan); ok && Identical(Vc.elem, Tc.elem) {
predicates.go#L126: case *Pointer, *Chan:
predicates.go#L157: case *Slice, *Pointer, *Signature, *Map, *Chan:
predicates.go#L380: case *Chan:
predicates.go#L383: if y, ok := y.(*Chan); ok {
stmt.go#L426: uch, _ := u.(*Chan)
stmt.go#L838: case *Chan:
stmt.go#L952: case *Chan:
subst.go#L191: case *Chan:
subst.go#L194: return &Chan{dir: t.dir, elem: elem}
type.go#L109: if x, _ := x.(*Chan); x != nil {
type.go#L110: if y, _ := y.(*Chan); y != nil && Identical(x.elem, y.elem) {
typestring.go#L256: case *Chan:
typestring.go#L263: if c, _ := t.elem.(*Chan); c != nil && c.dir == RecvOnly {
typexpr.go#L364: typ := new(Chan)
unify.go#L539: case *Chan:
unify.go#L541: if y, ok := y.(*Chan); ok {
golang.org/x/exp/apidiff
compatibility.go#L23: case *types.Chan:
compatibility.go#L24: if new, ok := new.(*types.Chan); ok {
compatibility.go#L47: func (d *differ) checkCompatibleChan(otn *types.TypeName, old, new *types.Chan) {
correspondence.go#L50: case *types.Chan:
correspondence.go#L51: if new, ok := new.(*types.Chan); ok {
golang.org/x/tools/internal/gcimporter
bexport.go#L377: case *types.Chan:
bimport.go#L575: t := new(types.Chan)
iexport.go#L745: case *types.Chan:
golang.org/x/tools/internal/typeparams
coretype.go#L40: ch, ok := U.(*types.Chan)
coretype.go#L48: curr, ok := terms[chans].Type().Underlying().(*types.Chan)